#include <stdio.h>

// 非常简单嗷,原理只是在函数传址的时候数组的地址用对应的指针变量传了过去,然后指针运算所需要的值也传了过去

void point_print (int* pa , size_t sz) // 由于函数有个函数,我们可以根据函数的需要去对每一个函数去定义它的功能是传址还是传值
{

    for (int i = 0 ; i < sz ; i++)
    {

        printf ("%d " , *(pa + i)) ; // *(pa + i) == pa [i] ,两种方法都可以选一种使用

    }
} // 只有参数需要确定每一个的功能是传值还是传址,而函数可以有多个参数 也就是说,函数可以同时传值还有传址

int main ()
{

    int array [] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 } ;

    size_t sz = sizeof (array) / sizeof (array [0]) ; // 通过sizeof来得出元素的个数,所返回的值是size_t

    point_print (array , sz) ; // 这里的array为数组首元素的地址,为传址 而sz为元素的个数,为传值

    return 0 ;

}